A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency
نویسندگان
چکیده
This research started with an algebra for reasoning about rely/guarantee concurrency for a shared memory model. The approach taken led to a more abstract algebra of atomic steps, in which atomic steps synchronise (rather than interleave) when composed in parallel. The algebra of rely/guarantee concurrency then becomes an instantiation of the more abstract algebra. Many of the core properties needed for rely/guarantee reasoning can be shown to hold in the abstract algebra where their proofs are simpler and hence allow a higher degree of automation. The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for program verification. In rely/guarantee concurrency, programs are specified to guarantee certain behaviours until assumptions about the behaviour of their environment are violated. When assumptions are violated, program behaviour is unconstrained (aborting), and guarantees need no longer hold. To support these guarantees a second synchronous operator, weak conjunction, was introduced: both processes in a weak conjunction must agree to take each atomic step, unless one aborts in which case the whole aborts. In developing the laws for parallel and weak conjunction we found many properties were shared by the operators and that the proofs of many laws were essentially the same. This insight led to the idea of generalising synchronisation to an abstract operator with only the axioms that are shared by the parallel and weak conjunction operator, so that those two operators can be viewed as instantiations of the abstract synchronisation operator. The main differences between parallel and weak conjunction are how they combine individual atomic steps; that is left open in the axioms for the abstract operator. Milner’s process algebra SCCS also includes a synchronous parallel operator and (again) the main difference between it and Aczel’s synchronous parallel operator is how it combines individual atomic steps. Milner’s parallel can be seen as another instance of the abstract synchronisation operator. Moreover, the realisation that the synchronisation mechanisms of standard process algebras, such as CSP and CCS/SCCS, can be interpreted in our abstract algebra gives evidence of its unifying power. Correspondence and offprint requests to: Ian J. Hayes, School of Information Technology and Electrical Engineering, The University of Queensland, Australia 4072. e-mail: [email protected] This work was supported by Australian Research Council (ARC) Discovery Project DP130102901. ar X iv :1 71 0. 03 35 2v 1 [ cs .L O ] 9 O ct 2 01 7 2 I. J. Hayes et al.
منابع مشابه
An Algebra of Synchronous Atomic Steps
This research started with an algebra for reasoning about rely/guarantee concurrency for a shared memory model. The approach taken led to a more abstract algebra of atomic steps, in which atomic steps synchronise (rather than interleave) when composed in parallel. The algebra of rely/guarantee concurrency then becomes an interpretation of the more abstract algebra. Many of the core properties n...
متن کاملIsolates: Serializability Enforcement for Concurrent ML
There has been much recent interest in exploring higher-level concurrency control abstractions such as software transactional memory (STM) to alleviate the complexity of reasoning about interactions among concurrent threads of control. Isolation and atomicity are the two critical properties provided by an STM that guarantee serializability of concurrent actions. Isolation ensures that transacti...
متن کاملSynchronous Kleene Algebra vs. Concurrent Kleene Algebra
In this year’s CONCUR conference Concurrent Kleene Algebra (CKA) is presented as a general formalism for reasoning about concurrent programs. Also recently Synchronous Kleene Algebra (SKA) was investigated by this author with the purpose of representing and reasoning about actions/programs that have a notion of concurrency in the style of synchrony of the SCCS calculus. CKA has, at first sight,...
متن کاملVerifying Robustness of Event-Driven Asynchronous Programs Against Concurrency
We define a correctness criterion, called robustness against concurrency, for a class of event-driven asynchronous programs that are at the basis of modern UI frameworks in Android, iOS, and Javascript. A program is robust when all possible behaviors admitted by the program under arbitrary procedure and event interleavings are admitted even if asynchronous procedures (respectively, events) are ...
متن کاملPossible values: Exploring a concept for concurrency
An important issue in concurrency is interference. This issue manifests itself in both shared-variable and communication-based concurrency — this paper focusses on the former case where interference is caused by the environment of a process changing the values of shared variables. Rely/guarantee approaches have been shown to be useful in specifying and reasoning compositionally about concurrent...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1710.03352 شماره
صفحات -
تاریخ انتشار 2017